import pandas as pd

# Series 对象拼接
d1 = pd.Series([1, 2, 3], index=list('ABC'))
d2 = pd.Series([9, 10, 11], index=list('DEF'))
print('Series拼接d1、d2')
print(pd.concat([d1, d2]))


# 两个 df 对象拼接，默认找相同的列索引进行合并
def make_df(cols, index):
    data = {c: [str(c) + str(i) for i in index] for c in cols}
    return pd.DataFrame(data, index=index)


print('DataFrame拼接d1、d2')
d1 = make_df('AB', [1, 2])
d2 = make_df('CD', [3, 4])
print(pd.concat([d1, d2]))
d3 = make_df('BC', [3, 4])
print(pd.concat([d1, d3]))
print('两个 df 对象拼接，添加 axis 参数')
print(pd.concat([d1, d3], axis=1))  # 或者 pd.concat([df1,df3],axis='columns')
print('两个 df 对象拼接，解决索引重复问题加 ignore_index 属性')
d1 = make_df('EF', [1, 2])
d2 = make_df('GH', [1, 2])
print(pd.concat([d1, d2], ignore_index=True))
print('两个 df 对象拼接，解决索引重复问题，加 keys 属性')
print(pd.concat([d1, d2, d3], keys=list('abc')))
print('两个 df 对象拼接，join 内连接做交集')
d1 = make_df('ABC', [1, 2, 3])
d2 = make_df('BCD', [1, 2, 3])
print(pd.concat([d1, d2], join='inner', ignore_index=True))
